home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.44
/
puritymag
/
puritymag.p
< prev
next >
Wrap
Text File
|
1995-02-26
|
44KB
|
1,256 lines
PROGRAM PurityMag;
{$opt q}
USES Graphics, Intuition, ExecSupport;
{$incl "dos.lib",
"workbench/startup.h",
"workbench/icon.h",
"icon.lib",
"exec/memory.h",
"wb.lib",
"gadtools.lib"}
CONST
APPICON_ID = 1;
NoWin = "Kann kein Fenster öffnen !!";
NoScr = "Kann keinen Screen öffnen !!";
NoAppPort= "Kann keinen MsgPort installieren !!";
NoAppI = "Kann kein AppIcon installieren !!";
NoWBLib = "Kann die workbench.library nicht öffnen !!";
NoMem = "Kein Speicher mehr frei !!";
NoGTLib = "Kann die gadtools.library nicht öffnen !!";
NoWBLock = "Kann die Workbench nicht locken !!";
NoVi = "Kann keine VisualInfo bekommen !!";
ver = "$VER: PurityMag II V1.11 (21.11.1994)";
version = "PurityMag II V1.11 (Release Date: 21.11.94) - ©1993/94 by BOMBERSOFT";
flags = ACTIVATE+RMBTRAP+BORDERLESS;
idcmp = REQSET+GADGETUP+RAWKEY+INTUITICKS+MOUSEMOVE;
max = 40;
forumm = "-=====================- FORUM -=====================-";
allge = "-=====================- ALLGEMEINES -=====================-";
hsp = "-=====================- HIGHSOFT-PASCAL-PROGRAMME -=====================-";
kikk = "-=====================- KICKPASCAL-PROGRAMME -=====================-";
pccq = "-=====================- PCQ-PROGRAMME -=====================-";
anll = "-=====================- ANLEITUNGEN -=====================-";
defwin = "CON:0/11/300/120/Purity-DiskMag";
TYPE
feld = ARRAY[1..max] OF ^STRING;
strtyp = STRING[80];
feld1 = ARRAY[1..10] OF p_Gadget;
feld2 = ARRAY[1..9] OF IntuiText;
Plane = ARRAY[1..5] OF WORD;
VAR
Pens : ARRAY[1..9] OF INTEGER;
xpos,x1,x2 : INTEGER;
AppPort : p_MsgPort;
AppObj : p_DiskObject;
MyAppIcon : p_AppIcon;
AppMsg : p_AppMessage;
ta : ARRAY[1..15] OF TagItem;
le,te,wi,he : INTEGER;
modee : LONG;
ps : p_Screen;
def_forum,def_allge,def_pcq,
def_kick,def_hspas,
def_anl : STRING;
nw : NewWindow;
wp : p_Window;
rp : p_RastPort;
vp : p_ViewPort;
sp : p_Screen;
ns : NewScreen;
msg : ^IntuiMessage;
KlickG,g : p_Gadget;
GadNum : INTEGER;
tattr : TextAttr;
i,j : LongInt;
mgad : feld1; STATIC;
it : feld2; STATIC;
f : Text;
alltxt,allbef,fortxt,forbef,
pcqtxt,pcqbef,kicktxt,kickbef,
hspastxt,hspasbef,anltxt,anlbef : feld; STATIC;
allanz,foranz,pcqanz,kickanz,
hspasanz,anlanz,k,x : INTEGER;
{dummy,}befehl : STRING;
lies_mich_zuerst,
pcqconf,
kickconf,
hsconf,
allconf,
forumconf,
anlconf : STRING;
all,
foru,
pcq,
kick,
ok,
news,
anl,
dumm,
lmz,
dummy : BOOLEAN;
qual,code : LONG;
err,fehler : INTEGER;
dd,class,total_mem : LONG;
fh : BPTR;
ausf,
buff,buff1 : STRING;
pnummer : STRING;
done : Boolean;
quitit : IntuiText;
Breite,Höhe,bla : INTEGER;
std,min,sek : BYTE;
stdd, minn, sekk,
total_mem_string : STRING;
rubigad : ARRAY[1..41] OF p_Gadget; STATIC;
nr,s : STR;
p : PTR;
ÜberGadget : Gadget; STATIC;
ÜberIt : IntuiText; STATIC;
ÜberDone : BOOLEAN; STATIC;
aok : WORD;
stri : STRING;
maxy : INTEGER;
TitelImage : Image;
StMess : p_WBStartup;
es : EasyStruct;
ConWin : STRING;
xoff, yoff : INTEGER;
ng : NewGadget;
gl,gl1,zurückgad : p_Gadget;
vi : PTR;
ÜberList, HilfeList : p_List;
TYPE
data = ARRAY[1..1786] OF WORD;
VAR
dat : ^data;
PROCEDURE uhrzeit(VAR stunden,minuten,sekunden:Byte);
VAR zeit: DATESTAMP;
xx : p_DateStamp;
BEGIN
xx := _DATESTAMP(^zeit);
stunden:=zeit.ds_minute DIV 60;
minuten:=zeit.ds_minute MOD 60;
sekunden:=zeit.ds_tick DIV 50;
END;
PROCEDURE GetMessage(VAR wo:p_Window; VAR class,code,qual:LONG; VAR GadNum:CARDINAL); EXPORT;
BEGIN
msg := p_IntuiMessage(WaitPort(wo^.UserPort));
msg := GT_GetIMsg(wo^.UserPort);
class := msg^.Class;
code := msg^.Code;
qual := msg^.Qualifier;
IF class IN [IDCMP_GADGETUP,IDCMP_GADGETDOWN] THEN
BEGIN
KlickG := msg^.IAddress;
GadNum := KlickG^.GadgetID;
END;
GT_ReplyIMsg(msg);
END;
PROCEDURE ButSelecter(VAR wp:p_Window; VAR gad:p_Gadget);
VAR
n : p_Gadget;
old : LONG;
dummy : BOOLEAN;
BEGIN
old := wp^.IDCMPFlags;
dummy:=ModifyIDCMP(wp,IDCMP_RAWKEY);
n := gad^.NextGadget;
gad^.NextGadget := NIL;
gad^.Flags := gad^.Flags + SELECTED;
RefreshGadgets(gad,wp,NIL);
REPEAT
GetMessage(wp,class,code,qual,GadNum);
UNTIL (class = IDCMP_RAWKEY) AND ( (code AND IECODE_UP_PREFIX)=IECODE_UP_PREFIX);
dummy:=ModifyIDCMP(wp,old);
gad^.Flags := gad^.Flags - SELECTED;
RefreshGadgets(gad,wp,NIL);
gad^.NextGadget := n;
END;
PROCEDURE UniPrint(VAR win:p_Window; txt:STRING; c1,c2,x,y:INTEGER; shadow,
center : BOOLEAN; tattr:p_TextAttr);
VAR
it,it1 : IntuiText;
l : LONG;
BEGIN
it := IntuiText(c1,0,JAM1,1,1,tattr,txt,^it1);
it1 := IntuiText(c2,0,JAM1,0,0,tattr,txt,NIL);
l := IntuiTextLength(^it)+1;
IF center THEN x := (win^.Width-l) DIV 2;
IF shadow THEN PrintIText(win^.RPort,^it,x,y)
ELSE PrintIText(win^.RPort,^it1,x,y);
END;
PROCEDURE FreeImage;
BEGIN
IF (dat <> NIL) THEN FreeVec(dat);
dat := NIL;
END;
FUNCTION InitImage : BOOLEAN;
BEGIN
InitImage := FALSE;
dat := PTR(AllocVec(SizeOf(data),MEMF_CHIP));
IF dat = NIL THEN EXIT;
dat^ := data(
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$00FF,$E000,$0000,$0000,$007F,$E000,$0000,$0000,$0000,$0000,$000F,$C000,$0000,$0000,$0000,$003F,$C000,$0000,$0000,
$0700,$1C00,$07E0,$1F00,$0F80,$1C00,$03F8,$07FF,$FFE7,$E00F,$C018,$3800,$FF00,$000F,$8000,$01C0,$3000,$0000,$0000,
$1800,$0300,$0818,$20C0,$3000,$0600,$0406,$0800,$0018,$1C30,$7010,$0401,$0380,$0010,$7800,$0600,$0C00,$0000,$0000,
$1000,$0080,$1004,$4020,$4000,$0180,$0401,$0800,$0018,$0620,$1820,$0202,$00C0,$0020,$0400,$1800,$0600,$0000,$0000,
$2000,$00C0,$1006,$4030,$4000,$00C0,$0801,$9000,$001E,$0740,$1C20,$0304,$00E0,$0040,$0600,$3000,$0300,$0000,$0000,
$4000,$0060,$100F,$C038,$8000,$0060,$0803,$D000,$003E,$0780,$3E60,$0388,$00F0,$0080,$0700,$6000,$0100,$0000,$0000,
$4000,$0030,$200F,$807C,$803E,$0030,$1003,$F000,$007E,$0380,$3E40,$0390,$00F0,$0080,$0700,$4000,$0180,$0000,$0000,
$403F,$8038,$200F,$807C,$81FF,$8038,$1003,$EFF0,$7FFC,$0300,$7CC0,$03A0,$00F0,$0102,$0780,$801C,$01C0,$0000,$0000,
$4403,$C038,$201F,$0078,$7807,$C038,$2007,$C3E0,$1FFC,$0300,$FC80,$03E0,$01F0,$0202,$0781,$003C,$01E0,$0000,$0000,
$3C03,$C03C,$401F,$00F8,$1807,$C03C,$2007,$C0E0,$1FFA,$0200,$F980,$03C0,$01F0,$0402,$0781,$007C,$03E0,$0000,$0000,
$0403,$803C,$401F,$00F8,$1007,$C07C,$200F,$8020,$1C02,$0201,$F100,$0380,$01E0,$0404,$0782,$00FF,$FFE0,$0000,$0000,
$0807,$807C,$403E,$00F0,$100F,$807C,$400F,$8040,$3E02,$0003,$F100,$0300,$01E0,$0804,$0782,$01F8,$FFE0,$0000,$0000,
$0806,$007C,$403E,$01F0,$200E,$00FC,$400F,$0040,$3E01,$0003,$E200,$0300,$01E0,$100C,$0784,$01FF,$FF80,$0000,$0000,
$0800,$00F8,$803E,$01E0,$2000,$00F8,$C01F,$0040,$3E01,$0007,$C202,$0202,$01E0,$F00C,$0784,$03C0,$0300,$0000,$0000,
$1000,$01F8,$807C,$03E0,$2000,$01F8,$801E,$0080,$7C01,$000F,$C402,$0202,$01E1,$0000,$0784,$0380,$0380,$0000,$0000,
$1010,$03F0,$807C,$03C0,$4000,$07F0,$803E,$0080,$7C01,$000F,$8402,$0202,$03E2,$0000,$0788,$0780,$0380,$0000,$0000,
$2010,$07F1,$007C,$03C0,$4000,$1FE1,$003E,$0080,$7C00,$801F,$0402,$0006,$03C2,$0000,$0788,$0700,$07C0,$0000,$0000,
$2010,$1FE1,$00F8,$07C0,$C000,$7FC1,$003C,$0100,$F800,$803F,$0806,$000C,$03C6,$0000,$0788,$0700,$07C0,$0000,$0000,
$2018,$7F81,$00F8,$0780,$8000,$3F01,$007C,$0100,$F800,$803E,$0806,$001C,$03C4,$0008,$0788,$0700,$1FC0,$0000,$0000,
$401F,$FF01,$00F0,$0F80,$8040,$1C02,$0078,$0100,$F001,$007C,$1806,$001C,$03C4,$0008,$0788,$07C0,$1FC0,$0000,$0000,
$403F,$FC01,$0000,$0F01,$0040,$1802,$0078,$0201,$F002,$00FC,$100E,$003C,$03C2,$00F8,$0788,$0380,$3F80,$0000,$0000,
$403C,$F000,$8000,$1F01,$0060,$0C02,$00F8,$0201,$F006,$00F8,$100E,$0078,$03C4,$01F8,$0F84,$0000,$7E00,$0000,$0000,
$403C,$0000,$8000,$3F01,$00F0,$0604,$00F0,$0201,$E004,$01F0,$201E,$00F8,$07C4,$03F8,$0F84,$0000,$FC00,$0000,$0000,
$807C,$0000,$4000,$3E02,$00F8,$0604,$00F0,$0403,$E008,$03F0,$201E,$00F8,$0788,$03E8,$0F82,$0001,$F800,$0000,$0000,
$8078,$0000,$3000,$FC02,$00F8,$0304,$01F0,$0403,$E008,$03E0,$201E,$01F8,$0788,$07C8,$0F01,$8003,$F800,$0000,$0000,
$6078,$0000,$0E03,$FC01,$81F4,$0103,$01E0,$0207,$C006,$07C0,$183F,$03FC,$0F87,$0FC8,$0F00,$601F,$F000,$0000,$0000,
$3FF8,$0000,$07FF,$F800,$7FE4,$0180,$FFE0,$01FF,$C001,$FFC0,$0FFE,$FFE3,$FF81,$FF87,$FF00,$3FFF,$C000,$0000,$0000,
$0FF0,$0000,$01FF,$E000,$3FE2,$03C0,$3FE0,$007F,$C000,$FF80,$03FC,$3FC0,$FF80,$7F01,$FF00,$0FFF,$8000,$0000,$0000,
$03F0,$0000,$007F,$8000,$07C1,$DFE0,$0FC0,$001F,$8000,$3F00,$00F8,$0F80,$3F00,$1E00,$FE00,$01FC,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$3FC0,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$1F00,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0C00,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0880,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0040,$8100,$0000,$4000,$0000,$9980,$0000,$0002,$0002,$0400,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$00C0,$0000,$0000,$0000,$0321,$8000,$0000,$E800,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0054,$1000,$4080,$0000,$0088,$0060,$0002,$0000,$0800,$0001,$0200,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0054,$7040,$C18C,$8900,$6488,$0000,$8C8E,$1200,$0193,$2643,$0632,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0054,$C040,$8100,$9900,$4488,$0320,$8898,$3200,$C932,$2442,$0402,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0004,$8040,$810F,$9100,$4408,$0220,$8890,$2200,$0902,$2442,$043E,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0004,$8040,$0000,$1100,$0408,$0020,$8090,$2200,$0812,$2040,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$00AC,$8040,$4081,$9100,$0CC8,$0060,$8190,$2200,$1832,$20C1,$0206,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$00A9,$80C0,$C18F,$3300,$F808,$07C0,$8F30,$6600,$F1E6,$6783,$063C,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0018,$0001,$8000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$00F0,$0007,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
{ Plane 1 }
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$00FF,$E000,$0000,$0000,$007F,$E000,$0000,$0000,$0000,$0000,$0007,$C000,$0000,$0000,$0000,$003F,$C000,$0000,$0000,
$07FF,$FC00,$07E0,$1F00,$0FFF,$F800,$03F8,$07FF,$FFE7,$E00F,$800F,$F800,$FC00,$000F,$8000,$01FF,$F000,$0000,$0000,
$0FFF,$FF00,$0FF8,$3FC0,$3FFF,$FE00,$03FE,$07FF,$FFE7,$F81F,$E01F,$FC01,$FF00,$001F,$F800,$07FF,$F800,$0000,$0000,
$1FFF,$FF00,$0FF8,$3FC0,$3FFF,$FF00,$07FE,$0FFF,$FFE1,$F83F,$E01F,$FC03,$FF00,$003F,$F800,$0FFF,$FC00,$0000,$0000,
$3FFF,$FF80,$0FF0,$3FC0,$7FFF,$FF80,$07FC,$0FFF,$FFC1,$F87F,$C01F,$FC07,$FF00,$007F,$F800,$1FFF,$FE00,$0000,$0000,
$3FFF,$FFC0,$1FF0,$7F80,$7FC1,$FFC0,$0FFC,$0FFF,$FF81,$FC7F,$C03F,$FC0F,$FF00,$007F,$F800,$3FFF,$FE00,$0000,$0000,
$3FC0,$7FC0,$1FF0,$7F80,$7E00,$7FC0,$0FFC,$000F,$8003,$FCFF,$803F,$FC1F,$FF00,$00FD,$F800,$7FE3,$FE00,$0000,$0000,
$3BFC,$3FC0,$1FE0,$FF80,$07F8,$3FC0,$1FF8,$001F,$E003,$FCFF,$007F,$FC1F,$FE00,$01FD,$F800,$FFC3,$FE00,$0000,$0000,
$03FC,$3FC0,$3FE0,$FF00,$07F8,$3FC0,$1FF8,$001F,$E001,$FDFF,$007F,$FC3F,$FE00,$03FD,$F800,$FF83,$FC00,$0000,$0000,
$03FC,$7FC0,$3FE0,$FF00,$0FF8,$3F80,$1FF0,$001F,$E001,$FDFE,$00FF,$FC7F,$FE00,$03FB,$F801,$FF00,$0000,$0000,$0000,
$07F8,$7F80,$3FC1,$FF00,$0FF0,$7F80,$3FF0,$003F,$C001,$FFFC,$00FF,$FCFF,$FE00,$07FB,$F801,$FE07,$0000,$0000,$0000,
$07F9,$FF80,$3FC1,$FE00,$1FF1,$FF00,$3FF0,$003F,$C000,$FFFC,$01FF,$FCFF,$FE00,$0FF3,$F803,$FE00,$0000,$0000,$0000,
$07FF,$FF00,$7FC1,$FE00,$1FFF,$FF00,$3FE0,$003F,$C000,$FFF8,$01FD,$FDFD,$FE00,$0FF3,$F803,$FC3F,$FC00,$0000,$0000,
$0FFF,$FE00,$7F83,$FC00,$1FFF,$FE00,$7FE0,$007F,$8000,$FFF0,$03FD,$FDFD,$FE00,$FFFF,$F803,$FC7F,$FC00,$0000,$0000,
$0FEF,$FC00,$7F83,$FC00,$3FFF,$F800,$7FC0,$007F,$8000,$FFF0,$03FD,$FDFD,$FC01,$FFFF,$F807,$F87F,$FC00,$0000,$0000,
$1FEF,$F800,$FF83,$FC00,$3FFF,$E000,$FFC0,$007F,$8000,$7FE0,$03FD,$FFF9,$FC01,$FFFF,$F807,$F8FF,$F800,$0000,$0000,
$1FEF,$E000,$FF07,$F800,$3FFF,$8000,$FFC0,$00FF,$0000,$7FC0,$07F9,$FFF3,$FC01,$FFFF,$F807,$F8FF,$F800,$0000,$0000,
$1FE7,$8000,$FF07,$F800,$7FFF,$C000,$FF80,$00FF,$0000,$7FC0,$07F9,$FFE3,$FC03,$FFF7,$F807,$F8FF,$E000,$0000,$0000,
$3FE0,$0000,$FF0F,$F000,$7FBF,$E001,$FF80,$00FF,$0000,$FF80,$07F9,$FFE3,$FC03,$FFF7,$F807,$F83F,$E000,$0000,$0000,
$3FC0,$0000,$FFFF,$F000,$FFBF,$E001,$FF80,$01FE,$0001,$FF00,$0FF1,$FFC3,$FC01,$FF07,$F807,$FC7F,$C000,$0000,$0000,
$3FC0,$0000,$7FFF,$E000,$FF9F,$F001,$FF00,$01FE,$0001,$FF00,$0FF1,$FF87,$FC03,$FE07,$F003,$FFFF,$8000,$0000,$0000,
$3FC0,$0000,$7FFF,$C000,$FF0F,$F803,$FF00,$01FE,$0003,$FE00,$1FE1,$FF07,$F803,$FC07,$F003,$FFFF,$0000,$0000,$0000,
$7F80,$0000,$3FFF,$C001,$FF07,$F803,$FF00,$03FC,$0007,$FC00,$1FE1,$FF07,$F807,$FC07,$F001,$FFFE,$0000,$0000,$0000,
$7F80,$0000,$0FFF,$0001,$FF07,$FC03,$FE00,$03FC,$0007,$FC00,$1FE1,$FE07,$F807,$F807,$F000,$7FFC,$0000,$0000,$0000,
$1F80,$0000,$01FC,$0000,$7E03,$FE00,$FE00,$01F8,$0001,$F800,$07C0,$FC03,$F000,$F007,$F000,$1FE0,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0003,$FE00,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0001,$FC00,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$2000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$3300,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0183,$0600,$0001,$8000,$0F83,$3300,$0001,$E00C,$000C,$1800,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0183,$0600,$0001,$8000,$0FC3,$0000,$0003,$F00C,$000C,$1800,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01AB,$6007,$8F1E,$6C01,$F330,$0CC0,$1E6C,$D803,$13CF,$8F1E,$3C78,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01AB,$E187,$8F3F,$7E01,$FB30,$0F83,$3F7C,$FC03,$E7EF,$DF9E,$3CFC,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01AB,$8183,$0633,$7601,$9B30,$0FC3,$3370,$EC01,$F66C,$D98C,$18CC,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01AB,$0183,$063F,$6601,$9B30,$0CC3,$3360,$CC00,$360C,$D98C,$18FC,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01FB,$0183,$0630,$6601,$9BF0,$0CC3,$3360,$CC03,$366C,$D98C,$18C0,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01FB,$0183,$873F,$6601,$F9F0,$0FC3,$3F60,$CC03,$F7EC,$DF8E,$1CFC,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0153,$0181,$831E,$6601,$F230,$0F9B,$1E60,$CC01,$E3CC,$CF06,$0C78,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$03F0,$001F,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$01E0,$000E,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,
$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000);
TitelImage := Image(0,0,304,47,2,dat,$03,$00,NIL);
InitImage := TRUE;
END;
PROCEDURE RemAppIcon;
VAR
dummy : BOOLEAN;
BEGIN
IF MyAppIcon<>NIL THEN dummy := RemoveAppIcon(MyAppIcon);
IF AppPort<>NIL THEN
BEGIN
AppMsg := p_AppMessage(GetMsg(AppPort));
WHILE AppMsg<>NIL DO
BEGIN
ReplyMsg(p_Message(AppMsg));
AppMsg := p_AppMessage(GetMsg(AppPort));
END;
DeleteMsgPort(AppPort);
END;
END;
PROCEDURE Cls;
BEGIN
SetRast(rp, 0);
END;
PROCEDURE RemoveG;
VAR
ok : WORD;
BEGIN
IF wp^.FirstGadget <> NIL THEN
ok := RemoveGList(wp,wp^.FirstGadget,-1);
END;
PROCEDURE SetFarben;
BEGIN
SetRGB4(vp,0,10,10,10);
SetRGB4(vp,1, 0, 0, 0);
SetRGB4(vp,2,15,15,15);
SetRGB4(vp,3, 6, 7, 9);
END;
PROCEDURE Set0;
VAR
i : INTEGER;
BEGIN
FOR i:=1 To 3 DO SetRGB4(vp,i,10,10,10);
END;
PROCEDURE CloseStuff;
VAR
dummy : BOOLEAN;
BEGIN
IF (wp<>NIL) THEN CloseWindow(wp);
wp := NIL;
IF (vi<>NIL) THEN FreeVisualInfo(vi);
vi := NIL;
IF (sp<>NIL) THEN dummy := CloseScreen(sp);
sp := NIL;
IF gl<>NIL THEN FreeGadgets(gl);
gl := NIL;
END;
PROCEDURE Neu(VAR dl:p_List; txt:STR);
VAR
n : p_Node;
BEGIN
New(n);
{n^.ln_succ := NIL;
n^.ln_pred := NIL;}
n^.ln_name := PTR(AllocVec(Length(txt)+1,MEMF_ANY));
IF PTR(n^.ln_name) = NIL THEN EXIT;
CopyMem(PTR(txt),PTR(n^.ln_name),Length(txt)+1);
AddTail(dl,n);
END;
PROCEDURE FreeAList(VAR dl:p_List);
VAR
n,ne : p_Node;
BEGIN
IF dl=NIL THEN EXIT;
n := dl^.lh_head;
WHILE n^.ln_succ <> NIL DO
BEGIN
ne := n^.ln_succ;
FreeVec(PTR(n^.ln_name));
Dispose(n);
n := ne;
END;
Dispose(dl);
END;
PROCEDURE UserMeldung(why:STRING);
VAR l : LONG;
BEGIN
es := EasyStruct(SizeOf(EasyStruct),0,"PurityMag: Fehlermeldung",why,"OK");
l := EasyRequestArgs(NIL,^es,NIL,NIL);
END;
PROCEDURE AsdaLaVista(why:STRING; rc:INTEGER); EXPORT;
VAR
ok,it:IntuiText;
l:LONG;
BEGIN
CloseStuff;
IF (fh<>0) THEN l := DosClose(fh);
RemAppIcon;
IF AppObj<>NIL THEN FreeDiskObject(AppObj);
IF gl<>NIL THEN FreeGadgets(gl);
IF vi<>NIL THEN FreeVisualInfo(vi);
IF why<>"" THEN UserMeldung(why)
IF (WorkbenchBase <> NIL) THEN CloseLibrary(WorkbenchBase);
IF (GadToolsBase <> NIL) THEN CloseLibrary(GadToolsBase);
IF (ÜberList <> NIL) THEN FreeAList(ÜberList);
IF (HilfeList <> NIL) THEN FreeAList(HilfeList);
FreeImage;
Halt(rc);
END;
PROCEDURE InitAppIcon;
BEGIN
MyAppIcon := NIL;
AppPort := CreateMsgPort;
IF AppPort = NIL THEN AsdaLaVista(NoAppPort,20);
END;
PROCEDURE StartVonWorkbench;
VAR
FName : STR;
OldLock : BPTR;
BEGIN
StMess := StartupMessage;
FName := StMess^.sm_ArgList^.wa_Name;
OldLock := CurrentDir( StMess^.sm_ArgList^.wa_Lock);
AppObj := GetDiskObject( FName ); { Icon laden }
IF AppObj<>NIL THEN
BEGIN
s := FindToolType(AppObj^.do_ToolTypes,"PNUMMER");
IF s<>"" THEN pnummer := s;
s := FindToolType(AppObj^.do_ToolTypes,"LMZ_AUFRUF");
IF s<>"" THEN
BEGIN
lies_mich_zuerst := s;
lmz := TRUE;
END;
s := FindToolType(AppObj^.do_ToolTypes,"PCQ_CONFIG");
IF s<>"" THEN pcqconf := s;
s := FindToolType(AppObj^.do_ToolTypes,"ANL_CONFIG");
IF s<>"" THEN anlconf := s;
s := FindToolType(AppObj^.do_ToolTypes,"ALLG_CONFIG");
IF s<>"" THEN allconf := s;
s := FindToolType(AppObj^.do_ToolTypes,"KICK_CONFIG");
IF s<>"" THEN kickconf := s;
s := FindToolType(AppObj^.do_ToolTypes,"HSPAS_CONFIG");
IF s<>"" THEN hsconf := s;
s := FindToolType(AppObj^.do_ToolTypes,"FORUM_CONFIG");
IF s<>"" THEN forumconf := s;
s := FindToolType(AppObj^.do_ToolTypes,"WINDOW");
IF s<>"" THEN ConWin := s;
AppObj^.do_CurrentX := NO_ICON_POSITION;
AppObj^.do_CurrentY := NO_ICON_POSITION;
END;
END;
PROCEDURE Schriftzug;
BEGIN
DrawImage(wp^.RPort,^TitelImage,(wp^.Width-TitelImage.Width) DIV 2,
(92-TitelImage.Height) DIV 2);
SetAPen(rp,3);
RectFill(rp,0,0,wp^.Width-1,8);
RectFill(rp,0,0,20,100);
RectFill(rp,0,92,wp^.Width-1,100);
RectFill(rp,wp^.Width-20,0,wp^.Width-1,100);
SetAPen(rp,1);
Move(rp,0,0);
Draw(rp,0,100);
Draw(rp,wp^.Width-1,100);
Draw(rp,wp^.Width-1,0);
Draw(rp,0,0);
Move(rp,20,8);
Draw(rp,20,92);
Draw(rp,wp^.Width-20,92);
Draw(rp,wp^.Width-20,8);
Draw(rp,20,8);
END;
PROCEDURE LetsGadget;
BEGIN
xpos:=(wp^.Width-600) div 2;
x1:=xpos+200;
x2:=xpos+400;
IF gl <> NIL THEN FreeGadgets(gl);
gl := NIL;
gl := CreateContext(^gl);
IF gl = NIL THEN EXIT;
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(xpos,120,200,14,
"_Info",^tattr,
1,PLACETEXT_IN,
vi,NIL);
mgad[1] := CreateGadgetA(BUTTON_KIND,gl,^ng,^ta);
ng := NewGadget(x1,120,200,14,
"_Forum",^tattr,
2,PLACETEXT_IN,
vi,NIL);
IF foru = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[2] := CreateGadgetA(BUTTON_KIND,mgad[1],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(x2,120,200,14,
"_Allgemeines",^tattr,
3,PLACETEXT_IN,
vi,NIL);
IF all = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[3] := CreateGadgetA(BUTTON_KIND,mgad[2],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(xpos,135,200,14,
"_PCQ-Programme",^tattr,
4,PLACETEXT_IN,
vi,NIL);
IF pcq = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[4] := CreateGadgetA(BUTTON_KIND,mgad[3],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(x1,135,200,14,
"_KickPascal-Programme",^tattr,
5,PLACETEXT_IN,
vi,NIL);
IF kick = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[5] := CreateGadgetA(BUTTON_KIND,mgad[4],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(x2,135,200,14,
"_HSPascal-Programme",^tattr,
6,PLACETEXT_IN,
vi,NIL);
IF news = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[6] := CreateGadgetA(BUTTON_KIND,mgad[5],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(xpos,150,200,14,
"An_leitungen",^tattr,
7,PLACETEXT_IN,
vi,NIL);
IF anl = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[7] := CreateGadgetA(BUTTON_KIND,mgad[6],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(x1,150,200,14,
"_Beenden",^tattr,
8,PLACETEXT_IN,
vi,NIL);
mgad[8] := CreateGadgetA(BUTTON_KIND,mgad[7],^ng,^ta);
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(x2,150,200,14,
"Lie_s mich zuerst!",^tattr,
9,PLACETEXT_IN,
vi,NIL);
IF lmz = FALSE THEN
BEGIN
ta[2] := TagItem(GA_Disabled, 1);
ta[3].ti_Tag := TAG_DONE;
END;
mgad[9] := CreateGadgetA(BUTTON_KIND,mgad[8],^ng,^ta);
ng := NewGadget((wp^.Width-320) DIV 2,185,320,13,
NIL,^tattr,
10,0,
vi,NIL);
ta[1] := TagItem(GTTX_Border,1);
ta[2].ti_Tag := TAG_DONE;
mgad[10] := CreateGadgetA(TEXT_KIND,mgad[9],^ng,^ta);
{ Titelbild ausgeben }
Schriftzug;
UniPrint(wp,"- Willkommen zur Purity Nr. "+pnummer+" -",1,2,0,105,
TRUE,TRUE,^tattr);
UniPrint(wp,version,1,2,0,244,TRUE,TRUE,^tattr);
UniPrint(wp,"Anleitung zum PurityMag: <HELP>-Taste drücken !",1,2,0,170,
TRUE,TRUE,^tattr);
{ IntuiText-Strukturen definieren: }
FOR i:=1 To 10 DO aok := AddGadget(wp,mgad[i],0);
RefreshGadgets(wp^.FirstGadget,wp,NIL);
END;
{*********************************************************
** Öffnen des Screens und des Windows. **
** Die Auflösung der Workbench wird auch übernommen. **
*********************************************************}
PROCEDURE OpenStuff;
BEGIN
tattr := TextAttr("topaz.font",8,0,0);
ps := LockPubScreen("Workbench");
IF ps<>NIL THEN
BEGIN
vp := ^ps^.ViewPort;
modee := GetVPModeID(vp);
Breite := ps^.Width;
Höhe := ps^.Height;
xoff := ps^.WBorLeft;
yoff := ps^.BarHeight;
IF Höhe < 256 THEN Höhe := 256;
le := ps^.LeftEdge;
te := ps^.TopEdge;
UnLockPubScreen(NIL, ps);
END ELSE AsdaLaVista(NoWBLock,20);
Pens[1] := -1;
ta[1] := TagItem(SA_Left, le);
ta[2] := TagItem(SA_Top, te);
ta[3] := TagItem(SA_Width, Breite);
ta[4] := TagItem(SA_Height, Höhe);
ta[5] := TagItem(SA_Depth, 2);
ta[6] := TagItem(SA_Type, CUSTOMSCREEN);
ta[7] := TagItem(SA_DisplayID, modee);
ta[8] := TagItem(SA_DetailPen, 1);
ta[9] := TagItem(SA_BlockPen, 2);
ta[10]:= TagItem(SA_Overscan,OSCAN_STANDARD);
ta[11]:= TagItem(SA_AutoScroll, LONG(TRUE));
ta[12]:= TagItem(SA_Font, LONG(^tattr));
ta[13]:= TagItem(SA_Pens, LONG(^Pens));
ta[14].ti_Tag := TAG_DONE;
sp := OpenScreenTagList(NIL,^ta);
IF sp=NIL THEN AsdaLaVista(NoScr, 20);
vi := GetVisualInfoA(sp, NIL);
IF vi = NIL THEN AsdaLaVista(NoVi, 20);
vp := ^sp^.ViewPort;
SetFarben;
ta[1] := TagItem(WA_Left, 0);
ta[2] := TagItem(WA_Top, 0);
ta[3] := TagItem(WA_Width,Breite);
ta[4] := TagItem(WA_Height,Höhe);
ta[5] := TagItem(WA_IDCMP,idcmp);
ta[6] := TagItem(WA_Flags,flags);
ta[7] := TagItem(WA_DetailPen,0);
ta[8] := TagItem(WA_BlockPen,1);
ta[9] := TagItem(WA_CustomScreen, LONG(sp));
wp := OpenWindowTagList(NIL,^ta);
IF wp = NIL THEN AsdaLaVista(NoWin, 20);
rp := wp^.RPort;
SetRast(rp, 0);
maxy := sp^.Height - 16;
END;
{$path"RAM:Pascal/PurityMag","Sources:PurityMag/"}
{$incl"Rubriken.h"}
PROCEDURE Über;
LABEL ÜberEnde;
VAR
win : p_Window;
gad, gad1 : p_Gadget;
ok : BOOLEAN;
BEGIN
g := NIL;
g := CreateContext(^g);
IF g = NIL THEN EXIT;
New(ÜberList);
ÜberList^.lh_head := NIL;
ÜberList^.lh_tail := NIL;
überList^.lh_TailPred := NIL;
NewList(ÜberList);
Neu(ÜberList,"PurityMag II");
Neu(ÜberList,"");
Neu(ÜberList,"©1993/94 by Björn Schotte");
Neu(ÜberList," Am Burkardstuhl 45");
Neu(ÜberList," D-97267 Himmelstadt");
Neu(ÜberList,"");
Neu(ÜberList,"EMail (UseNet) :");
Neu(ÜberList,"schotte@incubus.sub.org oder");
Neu(ÜberList,"BomberSoft@bomber.mayn.sub.de");
Neu(ÜberList,"");
Neu(ÜberList,"written in MAXONPascal III");
Neu(ÜberList,"");
Neu(ÜberList,"GreetinX/ThanX to/for:");
Neu(ÜberList,"");
Neu(ÜberList,"Diesel for the Puritys,");
Neu(ÜberList,"Michael Klein,");
Neu(ÜberList,"Andreas Neumann,");
Neu(ÜberList,"PackMAN,");
Neu(ÜberList,"Rainer Behrens (RabeSoft),");
Neu(ÜberList,"");
Neu(ÜberList,"an all the others of");
Neu(ÜberList,"the P.U.R.I.T.Y. !!!");
Neu(ÜberList,"");
Neu(ÜberList," _");
Neu(ÜberList,"_ // ONLY Amiga makes it possible !!");
Neu(ÜberList,"\X/");
ta[1] := TagItem(GTLV_Labels, LONG(ÜberList));
ta[2] := TagItem(GTLV_ReadOnly, 1);
ta[3].ti_Tag := TAG_DONE;
ng := NewGadget(xoff+1,yoff+1, 298, 80,
NIL,^tattr,
1,0,
vi,NIL);
gad := CreateGadgetA(LISTVIEW_KIND,g,^ng,^ta);
IF gad = NIL THEN GOTO ÜberEnde;
ta[1] := TagItem(GT_Underscore, LONG("_"));
ta[2].ti_Tag := TAG_DONE;
ng := NewGadget(xoff+1,yoff+82,298,14,
"_Weiter",^tattr,
2,0,
vi,NIL);
gad1 := CreateGadgetA(BUTTON_KIND,gad,^ng,^ta);
ta[1] := TagItem(WA_Left, (wp^.Width - (300+2*xoff)) DIV 2);
ta[2] := TagItem(WA_Top, (wp^.Height - 100) DIV 2);
ta[3] := TagItem(WA_Flags, WFLG_DRAGBAR+WFLG_CLOSEGADGET+
WFLG_ACTIVATE+WFLG_NOCAREREFRESH+
WFLG_SMART_REFRESH);
ta[4] := TagItem(WA_Idcmp, IDCMP_MOUSEBUTTONS+IDCMP_MOUSEMOVE+
IDCMP_INTUITICKS+IDCMP_GADGETUP+
IDCMP_GADGETDOWN+IDCMP_CLOSEWINDOW+
IDCMP_RAWKEY);
ta[5].ti_Tag := WA_Title;
ta[5].ti_data := "Information";
ta[6] := TagItem(WA_CustomScreen, LONG(sp));
ta[7] := TagItem(WA_Gadgets, LONG(g));
ta[8] := TagItem(WA_InnerWidth, 300);
ta[9] := TagItem(WA_InnerHeight, 100);
ta[10].ti_Tag := TAG_DONE;
win := OpenWindowTagList(NIL,^ta);
IF win <> NIL THEN
BEGIN
GT_RefreshWindow(win,NIL);
ok := FALSE;
REPEAT
msg := p_IntuiMessage(WaitPort(win^.UserPort));
msg := GT_GetIMsg(win^.UserPort);
class := msg^.Class;
code := msg^.Code;
IF class IN [IDCMP_GADGETUP, IDCMP_GADGETDOWN] THEN
BEGIN
KlickG := msg^.IAddress;
GadNum := KlickG^.GadgetID;
END;
GT_ReplyIMsg(msg);
CASE class OF
IDCMP_CLOSEWINDOW : ok := TRUE;
IDCMP_GADGETUP: IF GadNum = 2 THEN ok := TRUE;
IDCMP_RAWKEY:
CASE code OF
69 : ok := TRUE;
$11: BEGIN
ButSelecter(win,gad1);
ok := TRUE;
END;
ELSE END;
ELSE END;
UNTIL ok;
CloseWindow(win);
END;
ÜberEnde:
FreeGadgets(g);
FreeAList(ÜberList);
ÜberList := NIL;
END;
PROCEDURE time;
VAR
it : IntuiText;
x,b : INTEGER;
BEGIN
uhrzeit(std,min,sek);
stdd:=IntStr(std); minn:=IntStr(min); sekk:=IntStr(sek);
IF std<10 THEN stdd:="0"+stdd;
IF min<10 THEN minn:="0"+minn;
IF sek<10 THEN sekk:="0"+sekk;
total_mem := AvailMem(0);
total_mem_string := IntStr(total_mem);
IF (total_mem < 10) THEN
total_mem_string := " "+total_mem_string
ELSE IF (total_mem>=10) AND (total_mem<100) THEN
total_mem_string := " "+total_mem_string
ELSE IF (total_mem>=100) AND (total_mem<1000) THEN
total_mem_string := " "+total_mem_string
ELSE IF (total_mem>=1000) AND (total_mem<10000) THEN
total_mem_string := " "+total_mem_string
ELSE IF (total_mem>=10000) AND (total_mem<100000) THEN
total_mem_string := " "+total_mem_string
ELSE IF (total_mem>=100000) AND (total_mem<1000000) THEN
total_mem_string := " "+total_mem_string
ELSE IF (total_mem>=1000000) AND (total_mem<10000000) THEN
total_mem_string := " "+total_mem_string;
buff:="ZEIT: "+stdd+":"+minn+":"+sekk;
buff := buff+ " · TOTAL MEMORY: "+total_mem_string;
IF buff<>buff1 THEN
BEGIN
ta[1] := TagItem(GTTX_Text, LONG(^buff));
ta[2].ti_Tag := TAG_DONE;
GT_SetGadgetAttrsA(mgad[10],wp,NIL,^ta);
buff1:=buff;
END;
END;
PROCEDURE ReadC(name:STRING;VAR bool:BOOLEAN;VAR anz:INTEGER;VAR txt,bef: feld);
BEGIN
anz := 0;
Reset(f, name);
IF IOResult = 0 THEN
BEGIN
bool:=TRUE;
Buffer(f, 8000);
anz:=0;
WHILE NOT (Eof(f)) AND (anz <= max) DO
BEGIN
Inc(anz);
New(txt[anz]);
ReadLn(f, txt[anz]^);
New(bef[anz]);
ReadLn(f, bef[anz]^);
END;
Close(f);
END ELSE bool:=FALSE;
END;
PROCEDURE ReadConfigs;
BEGIN
ReadC(forumconf,foru,foranz,fortxt,forbef);
ReadC(allconf,all,allanz,alltxt,allbef);
ReadC(pcqconf,pcq,pcqanz,pcqtxt,pcqbef);
ReadC(kickconf,kick,kickanz,kicktxt,kickbef);
ReadC(hsconf,news,hspasanz,hspastxt,hspasbef);
ReadC(anlconf,anl,anlanz,anltxt,anlbef);
Cls;
END;
PROCEDURE Init;
BEGIN
FOR i:=1 TO max DO
BEGIN
fortxt [i]^ := "";
forbef [i]^ := "";
allbef [i]^ := "";
alltxt [i]^ := "";
pcqtxt [i]^ := "";
pcqbef [i]^ := "";
kicktxt [i]^ := "";
kickbef [i]^ := "";
hspastxt[i]^ := "";
hspasbef[i]^ := "";
anltxt [i]^ := "";
anlbef [i]^ := "";
END;
sp := NIL;
wp := NIL;
gl := NIL;
OpenStuff;
ReadConfigs;
LetsGadget;
END;
PROCEDURE Iconify;
VAR
sig,lok : LONG;
ok : BOOLEAN;
BEGIN
CloseStuff;
lok := DosClose(fh);
fh := 0;
MyAppIcon := AddAppIconA(APPICON_ID,0,"PurityMag",AppPort,NIL,AppObj,NIL);
IF MyAppIcon=NIL THEN AsdaLaVista(NoAppI, 20);
ok := FALSE;
REPEAT
sig := _Wait(1 SHL AppPort^.mp_SigBit);
AppMsg := p_AppMessage(GetMsg(AppPort));
CASE AppMsg^.am_Type OF
MTYPE_APPICON:
IF (AppMsg^.am_NumArgs=0) AND (AppMsg^.am_ArgList=NIL) THEN
BEGIN
ok := TRUE;
END;
ELSE END;
ReplyMsg(p_Message(AppMsg));
UNTIL ok;
ok := RemoveAppIcon(MyAppIcon);
MyAppIcon := NIL;
AppMsg := p_AppMessage(GetMsg(AppPort));
WHILE AppMsg<>NIL DO
BEGIN
ReplyMsg(p_Message(AppMsg));
AppMsg := p_AppMessage(GetMsg(AppPort));
END;
fh:=Open(ConWin,MODE_NEWFILE);
IF fh=0 THEN
BEGIN
UserMeldung("Kann keine Konsole öffnen !!")
HALT(20);
END;
OpenStuff;
LetsGadget;
END;
PROCEDURE Hilfe;
LABEL HilfeEnde;
VAR
g,gad,gad1 : p_Gadget;
t : ARRAY[1..10] OF TagItem;
win : p_Window;
ok : BOOLEAN;
BEGIN
g := NIL;
g := CreateContext(^g);
IF g = NIL THEN EXIT;
ng := NewGadget(1,1,wp^.Width-1,wp^.Height-100-15-3,
NIL,^tattr,
1,0,
vi,NIL);
t[1] := TagItem(GTLV_Labels, LONG(HilfeList));
t[2] := TagItem(GTLV_ReadOnly, 1);
t[3].ti_Tag := TAG_DONE;
gad := CreateGadgetA(LISTVIEW_KIND,g,^ng,^t);
IF gad = NIL THEN GOTO HilfeEnde;
t[1] := TagItem(GT_Underscore, LONG("_"));
t[2].ti_Tag := TAG_DONE;
ng := NewGadget(1,wp^.Height-100-15,wp^.Width-1,14,
"_Weiter",^tattr,
2,PLACETEXT_IN,
vi,NIL);
gad1 := CreateGadgetA(BUTTON_KIND,gad,^ng,^t);
IF gad1 = NIL THEN GOTO HilfeEnde;
t[1] := TagItem(WA_Gadgets, LONG(g));
t[2] := TagItem(WA_Left,0);
t[3] := TagItem(WA_Top,100);
t[4] := TagItem(WA_Width,wp^.Width);
t[5] := TagItem(WA_Height,wp^.Height-t[3].ti_Data);
t[6] := TagItem(WA_Flags, WFLG_BORDERLESS+WFLG_NOCAREREFRESH+
WFLG_SMART_REFRESH+WFLG_ACTIVATE);
t[7] := TagItem(WA_IDCMP, IDCMP_MOUSEBUTTONS+IDCMP_MOUSEMOVE+
IDCMP_INTUITICKS+IDCMP_GADGETUP+IDCMP_GADGETDOWN+
IDCMP_RAWKEY);
t[8] := TagItem(WA_CustomScreen, LONG(sp));
t[9].ti_Tag := TAG_DONE;
win := OpenWindowTagList(NIL,^t);
IF win <> NIL THEN
BEGIN
GT_RefreshWindow(win,NIL);
ok := FALSE;
REPEAT
GetMessage(win,class,code,qual,GadNum);
CASE class OF
IDCMP_GADGETUP: IF GadNum = 2 THEN ok := TRUE;
IDCMP_RAWKEY:
CASE code OF
69 : ok := TRUE;
$11: BEGIN
ButSelecter(win,gad1);
ok := TRUE;
END;
ELSE END;
ELSE END;
UNTIL ok;
CloseWindow(win);
END ELSE DisplayBeep(sp);
HilfeEnde:
FreeGadgets(g);
END;
PROCEDURE Main;
BEGIN
ok:=False;
REPEAT
msg:=p_IntuiMessage(WaitPort(wp^.UserPort));
msg := GT_GetIMsg(wp^.UserPort);
class:=msg^.Class;
KlickG:=msg^.IAddress;
GadNum:=KlickG^.GadgetID;
qual:=msg^.Qualifier;
code:=msg^.Code;
GT_ReplyIMsg(msg);
CASE class OF
INTUITICKS :
BEGIN
time;
END;
GADGETUP:
BEGIN
CASE GadNum OF
1 : Über;
2 : BEGIN
Forum;
LetsGadget;
END;
3 : BEGIN
Allgemeines;
LetsGadget;
END;
4 : BEGIN
pcqq;
LetsGadget;
END;
5 : BEGIN
kickk;
LetsGadget;
END;
6 : BEGIN
Newss;
LetsGadget;
END;
7 : BEGIN
Anleitungen;
LetsGadget;
END;
8 : ok:=True;
9 : BEGIN
IF lmz THEN liesmz;
END;
ELSE END;
END;
RAWKEY :
BEGIN
IF (qual and 32768)=32768 THEN
BEGIN
CASE code OF
$20 : BEGIN { a }
IF all THEN
BEGIN
ButSelecter(wp,mgad[3]);
Allgemeines;
LetsGadget;
END;
END;
$35 : BEGIN { b }
ButSelecter(wp,mgad[8]);
ok:=True;
END;
37 : BEGIN { h }
IF news THEN
BEGIN
ButSelecter(wp,mgad[6]);
Newss;
LetsGadget;
END;
END;
39 : BEGIN { k }
IF kick THEN
BEGIN
ButSelecter(wp,mgad[5]);
kickk;
LetsGadget;
END;
END;
25 : BEGIN { p }
IF pcq THEN
BEGIN
ButSelecter(wp,mgad[4]);
pcqq;
LetsGadget;
END;
END;
40 : BEGIN { l }
IF anl THEN
BEGIN
ButSelecter(wp,mgad[7]);
Anleitungen;
LetsGadget;
END;
END;
23 : BEGIN
ButSelecter(wp,mgad[1]);
Über;
END;
35 : BEGIN { f }
IF foru THEN
BEGIN
ButSelecter(wp,mgad[2]);
Forum;
LetsGadget;
END;
END;
95 : BEGIN
Hilfe;
END;
33 : IF lmz THEN
BEGIN
ButSelecter(wp,mgad[9]);
LiesmZ;
END;
69 : Iconify;
194 : BEGIN
DisposeAll;
ReadC(forumconf,foru,foranz,fortxt,forbef);
ReadC(allconf,all,allanz,alltxt,allbef);
ReadC(pcqconf,pcq,pcqanz,pcqtxt,pcqbef);
ReadC(kickconf,kick,kickanz,kicktxt,kickbef);
ReadC(hsconf,news,hspasanz,hspastxt,hspasbef);
ReadC(anlconf,anl,anlanz,anltxt,anlbef);
END;
ELSE END;
END;
END;
ELSE END;
UNTIL (ok=True);
END;
PROCEDURE Defaults;
BEGIN
zurückgad := NIL;
def_forum := ":s/forum.conf";
def_allge := ":s/allgemein.conf";
def_pcq := ":s/pcq.conf";
def_kick := ":s/kick.conf";
def_hspas := ":s/hspas.conf";
def_anl := ":s/anl.conf";
forumconf := def_forum;
hsconf:=def_hspas;
kickconf:=def_kick;
allconf:=def_allge;
anlconf:=def_anl;
pnummer:="0";
lies_mich_zuerst := "";
lmz := FALSE;
vi := NIL;
wp := NIL;
sp := NIL;
pcqanz:=0; hspasanz:=0; kickanz:=0; anlanz:=0; foranz:=0;
ConWin := defwin;
New(HilfeList);
HilfeList^.lh_head := NIL;
HilfeList^.lh_tail := NIL;
HilfeList^.lh_TailPred := NIL;
NewList(HilfeList);
Neu(HilfeList,"PURITYMAG - HILFEFUNKTION");
Neu(HilfeList,"");
Neu(HilfeList,"Nach dem Start des Programms und dem Laden der Konfigurations-");
Neu(HilfeList,"dateien erscheint das Hauptmenü.");
Neu(HilfeList,"Dort siehst Du so ziemlich in der Mitte, welche Purity Du vor Dir");
Neu(HilfeList,"hast. Danach findest Du versch. Gadgets. Einiger dieser Gadgets");
Neu(HilfeList,"tragen Aufschriften für eine Rubrik (z.B. PCQ-Programme etc.),");
Neu(HilfeList,"in die Du bei Mausklick auf das jeweilige Gadget kommst.");
Neu(HilfeList,"Bist Du einmal in einer solchen Rubrik, präsentiert sich ein neuer");
Neu(HilfeList,"Bildschirm mit einer Überschrift, die den Rubriknamen trägt, und");
Neu(HilfeList,"diverse Gadgets, bei denen Du auf Mausklick Anleitungen liest,");
Neu(HilfeList,"Programme startest etc.");
Neu(HilfeList,"Sollte jedoch im Hauptmenü einmal ein Rubrikgadget 'ghosted' sein,");
Neu(HilfeList,"dann bedeutet dies, daß auf dieser uns vorliegenden PURITY eben");
Neu(HilfeList,"diese Rubrik nicht vorhanden ist !!");
Neu(HilfeList,"");
Neu(HilfeList,"Zurück zum HAUPTMENÜ:");
Neu(HilfeList,"");
Neu(HilfeList,"Bei Mausklick auf das Gadget 'Info' öffnet sich ein Fenster, das");
Neu(HilfeList,"diverse Infos über das Programm enthält,");
Neu(HilfeList,"'Quit' beendet die 'Sitzung' mit dem PurityMag,");
Neu(HilfeList,"'Lies mich Zuerst' liest eine Datei ein, in der Du diverse Infos");
Neu(HilfeList,"über die Purity findest.");
Neu(HilfeList,"");
Neu(HilfeList,"Ganz unten findest Du noch eine Notiz, in der steht, welche Version");
Neu(HilfeList,"vom PurityMag benutzt wird.");
Neu(HilfeList,"");
Neu(HilfeList,"Die Adresse des Autors:");
Neu(HilfeList,"");
Neu(HilfeList," Björn Schotte");
Neu(HilfeList," Am Burkardstuhl 45");
Neu(HilfeList," D-97267 Himmelstadt");
Neu(HilfeList,"");
Neu(HilfeList," Germany/Europe");
Neu(HilfeList,"");
Neu(HilfeList,"EMail (UseNet): schotte@incubus.sub.org");
Neu(HilfeList," BomberSoft@bomber.mayn.sub.de");
END;
PROCEDURE TestV37;
VAR
lib : p_Library;
BEGIN
lib := IntuitionBase;
IF lib^.lib_Version < 37 THEN
BEGIN
Reset(input,"CON:0/0/300/100/PurityMag");
output := input;
WriteLn("PurityMag II läuft nur noch ab OS2.04 !!!");
Delay(150);
Close(input);
HALT(20);
END;
END;
BEGIN
TestV37;
IF NOT FromWB THEN
BEGIN
WriteLn(CHR(27),"[1;4mPurityMag-Fehlermeldung:",CHR(27),"[0m");
WriteLn;
WriteLn(CHR(27),"[1;33mBitte von der Workbench starten !!",#27"[0m");
HALT(10);
END;
Defaults;
dummy := InitImage;
IF dummy = FALSE THEN
BEGIN
UserMeldung("Kein freier Speicher für Titelbild !!");
HALT(20);
END;
IF FromWB THEN
BEGIN
IconBase := OpenLibrary("icon.library", 0);
IF IconBase <> NIL THEN
BEGIN
StartVonWorkbench;
CloseLibrary(IconBase);
END;
END;
fh:=Open(ConWin,MODE_NEWFILE);
IF fh=0 THEN
BEGIN
UserMeldung("Kann keine Konsole öffnen !!");
FreeImage;
HALT(20);
END;
GadToolsBase := OpenLibrary("gadtools.library", 37);
IF GadToolsBase = NIL THEN AsdaLaVista(NoGTLib, 20);
WorkbenchBase := OpenLibrary("workbench.library",0);
IF WorkbenchBase = NIL THEN AsdaLaVista(NoWBLib,20);
InitAppIcon;
Init;
Main;
AsdaLaVista("",0);
END.